/**
 * 将数据转化为json格式数据【同步方法】
 * @description 将数据转化为json格式数据
 * @param {String,Object} data 待转化的数据
 * @return {Object} 转化生成的json格式数据
 */
function toJson(data = {}) {
	
	// 初始化返回数据为false
	var data_return = false;
	
	// 节点数据转换处理方法，参数：jsonC-要转换处理的json数据
	function deal_el(jsonC)
	{
		// 循环传递进来的jsonC参数
		for (let k in jsonC)
		{
			// 节点 - json元素项
			let ele_value = jsonC[k];
			
			// 如果数据类型为字符串
			if (typeof(ele_value)=="string")
			{
				// 准备转换格式节点元素
				var isConver = false;
				// 尝试转化数据为json
				try { ele_value = JSON.parse(ele_value); isConver = true; }
				catch (e) { isConver = false; }
				// 如果转化成功，递归自身
				if (isConver) { deal_el(ele_value); }
			}
			// 如果数据类型为字符串或者对象
			if (typeof(ele_value)=="object")
			{
				// 准备转换格式节点元素
				var isConver = false;
				// 尝试转化数据为json
				try { ele_value = JSON.parse(JSON.stringify(ele_value)); isConver = true; }
				catch (e) { isConver = false; }
				// 如果转化成功，递归自身
				if (isConver) { deal_el(ele_value); }
			}
			
			// 最终将节点 覆盖到 原位置
			jsonC[k] = ele_value;
		}
	};
	
	// ===================== data参数转换
	// 参数数据格式 == 字符串
	if (typeof(data) == "string")
	{
		try { data_return = JSON.parse(data); }
		catch (e) { data_return = false; }
	}
	// 参数数据格式 == 对象，保留原数据
	else if (typeof(data) == "object")
	{
		try { data_return = JSON.parse(JSON.stringify(data)); }
		catch (e) { data_return = false; }
	}
	
	// 如果数据有效，进行节点数据转换处理方法
	if (data_return) { deal_el(data_return); }
	
	// 返回结果数据
	return data_return;
}

export default toJson;